package com.itheima.ai.maolong.repository;

import java.util.List;

//todo 要存储的是不同用户的聊天记录啊;

//todo 既然实现了用户功能,那就添加用户鉴权功能吧;

//todo 如何使用crm系统中的用户的所有功能呢,feign远程调用嘛??-->可以,获得所有的用户,以及用户角色等信息
// 那要把登录的用户,存储到一个全局的地方,然后在获取用户信息的时候,就可以获取到了;
// 把短信登录功能也做了吧;
// 这样就涉及到了,策略模式;工厂模式等,具体忘了;
// 实现双token还要;
// 鉴权怎么做呢,那就判断短信登录跟密码登录这两种人吧,这两种的话,对应着是否具有某种功能的权限;;;--->去参考若依框架的


//todo 定时任务,每隔7天删除一次用户的会话记录;

//todo 使用线程池来做异步删除

// todo 删除指定的会话id

// todo 实现分布式会话搜索功能;-->es搜索会话中的内容,搜索出相应的内容来,包含分词,提示词功能;--->线程池导入会话内容到es中,;-->用户导入时,rabbitmq消息发布,异步导入;

// todo 微服务,对接其他的mcp功能;

// todo 基于个人实现的mybatis,实现操作功能;

// todo 缓存,查询出所有的会话后,如何存,redis的分布式缓存;

// todo 日志功能,如何实现牛逼的日志呢?aop嘛,有点log吧,kafaka这种嘛?

public interface ChatHistRepository {
    /**
     * 保存会话记录
     * @param type 业务类型，如：chat、service、pdf
     * @param chatId 会话ID
     */
    void save(String type, String chatId);

    /**
     * 获取会话ID列表
     * @param type 业务类型，如：chat、service、pdf
     * @return 会话ID列表
     */
    List<String> getChatIds(String userId,String type);

    /**
     * 删除会话记录
     */
    void deleteSyncTask();

    /**
     * 删除指定的会话ID
     */
    void delete(String chatId);

}
